The present invention relates generally to the field of communications and, in particular, to a circuit and method for shaping traffic in a virtual connection network.
Conventionally, telecommunications services have been provided to subscribers using dedicated channels. That is, for each call, the telecommunications network establishes a pipeline that is not shared with other calls. As technology has improved, the telecommunications systems have adopted various time division multiplexing techniques to allow a number of connections to contemporaneously use the same physical channel. In recent years, virtual connection technology, e.g., Asynchronous Transfer Mode and Frame Relay, has been developed to allow even more efficient use of bandwidth in a telecommunications system.
With a virtual connection, several users share the same physical circuit. Data is transmitted over the virtual connection in data packets or cells. The data packets each have a source address and a destination address that indicate the endpoints of the virtual connection. One typical characteristic of such virtual connections is that the traffic is xe2x80x9cbursty.xe2x80x9d This means that the rate at which data is transmitted changes with time. To compensate for potential problems caused by the bursty nature of such virtual connections, conventional systems that use virtual connections typically include traffic shapers. The traffic shapers smooth out the data rate so as to be more uniform despite fluctuations in the rate at which the endpoints provide data to the virtual connection. One problem with conventional shapers is that floating point calculations are typically used to control the data rate.
For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for an improved traffic shaper for virtual circuit connections.
The above mentioned problems with traffic shapers and other problems are addressed by the present invention and which will be understood by reading and studying the following specification. A traffic shaper is described which selectively allocates timeslots to a virtual connection in a measurement window.
In particular, an illustrative embodiment of the present invention includes a method for controlling the data rate of a virtual connection. The method includes buffering data packets in a buffer. The data packets are received for transmission on the virtual connection. A counter generates a signal that indicates the beginning of timeslots in a measurement window. The number of timeslots needed to transmit the data packets with a selected data rate is determined. Data is accessed from at least one table to determine the spacing between timeslots in the measurement window used to request access to a data bus based on the number of timeslots needed to achieve the selected data rate. Access to a data bus is requested for the data packets in the buffer based on the data accessed from the table. The packets are transmitted when access to the bus is granted.
In another embodiment, a traffic shaper that delivers data packets from at least one traffic source to a virtual connection network at a substantially uniform rate is provided. The traffic shaper includes a buffer that receives packets from the at least one traffic source. A counter is also included that indicates the beginning of each of a number of timeslots over a selectable time period. A request generator creates request signals that request timeslots for transmitting data out of the buffer. The requests are distributed over the time period based on at least one table so as to establish a desired data rate for the traffic source.
In another embodiment, a method for allocating time slots to shape a stream of data packets is provided. The method includes receiving a request to establish a virtual connection with a selected data rate. The number of requests needed in a sector of a measurement window of timeslots to achieve the selected data rate is determined. Requests for timeslots for the sector are generated according to a stored pattern. The steps of determining and generating are repeated until each sector of the measurement window has been processed.
In another embodiment, a traffic shaper that allocates time slots to shape a stream of data packets is provided. The traffic shaper includes means for receiving a request to establish a virtual connection with a selected data rate. The traffic shaper also includes means for determining the number of requests needed in each sector of a measurement window of timeslots to achieve the selected data rate. Finally, the traffic shaper includes means for generating requests for timeslots for each sector according to a stored pattern based on the selected data rate.